import { createApp } from 'vue'
import App from './App.vue'
import {default as router,setAdminRoute} from './router'
import store from './store'

// elementPlus
import ElementPlus from 'element-plus'

// 使ElementPlus的默认语言变为中文
import 'element-plus/theme-chalk/index.css'
import 'dayjs/locale/zh-cn'
import locale from 'element-plus/lib/locale/lang/zh-cn'

// wangeditor编辑器附件上传插件
import { Boot } from "@wangeditor/editor";
import attachmentModule from "@wangeditor/plugin-upload-attachment";
// 注册。要在创建编辑器之前注册，且只能注册一次，不可重复注册。
Boot.registerModule(attachmentModule);


//在页面刷新时将vuex里的信息保存到sessionStorage里
window.addEventListener("beforeunload", () => {
    sessionStorage.setItem("store", JSON.stringify(store.state));
});

// 加载时，进行数据装填
const storeItem = sessionStorage.getItem("store");
if (storeItem) {
    store.replaceState(Object.assign({}, store.state, JSON.parse(storeItem)));

    // 重新调用setAdmin，方便加载数据
    setAdminRoute();
}


// 封装弹出窗
import "./util/message";

// 创建vue对象
const app = createApp(App);

// 异步加载下拉框数据
store.dispatch("setOptions");

// 使用vuex
app.use(store);

// 使用路由
app.use(router);

// 挂载ElementPlus组件库，并添加中文支持
app.use(ElementPlus, { locale });

// 挂载
app.mount('#app')
